package com.sanyuan.cloud.module.system.service.nongmo;

import com.sanyuan.cloud.framework.common.pojo.PageResult;
import com.sanyuan.cloud.module.system.controller.admin.nongmo.req.PositionAssignReq;
import com.sanyuan.cloud.module.system.controller.app.position.req.CheckRecordReqVO;
import com.sanyuan.cloud.module.system.controller.app.position.req.OverViewStatisticsReqVO;
import com.sanyuan.cloud.module.system.controller.app.position.req.PositionReqVO;
import com.sanyuan.cloud.module.system.controller.app.position.req.VisitReqVO;
import com.sanyuan.cloud.module.system.controller.app.position.vo.*;

import java.util.List;

/**
 * @Description: AppPositionService
 * @Author: wuyuwei
 * @Date: 2025/3/28
 */
public interface AppPositionService {
    Boolean addPosition(PositionReqVO reqVO);

    List<SystemPositionV0> findNearbyPositions(double longitude, double latitude, Double radiusKm);

    void assign(PositionAssignReq req);

    Boolean delete(String id);

    PositionVO detail(String id);

    UserVisitInfoVO getVisitInfoByUserAndTimeSlot(VisitReqVO reqVO);

    List<DistrictVisitInfoVO> getDistrictVisitInfo(PositionReqVO reqVO);

    Boolean initCheckInLocation(PositionReqVO reqVO);

    Boolean checkIn(PositionReqVO reqVO);

    Boolean updateVisitStatus(VisitReqVO reqVO);

    OverViewStatisticsRespVO overViewStatistics(OverViewStatisticsReqVO reqVO);

    PageResult<CheckRecordRespVO> getCheckRecord(CheckRecordReqVO reqVO);

    PositionVO getLatestRecord(VisitReqVO reqVO);
}
